#include <iostream>
#include <functional>

// 定义一个回调函数类型
typedef std::function<int(int)> Callback;

// 定义一个处理回调函数的类
class CallbackHandler {
public:
    // 设置回调函数
    void setCallback(Callback callback) {
        m_callback = callback;
    }

    // 调用回调函数
    int invokeCallback(int value) {
        if (m_callback) {
            return m_callback(value);
        }
        return -1;
    }
private:
    Callback m_callback;
};

int main() {
    // 创建一个回调函数，接受一个整形参数并返回其平方
    Callback callback = [](int value) { return value * value; };

    // 创建一个回调处理对象
    CallbackHandler handler;
    handler.setCallback(callback);

    // 调用回调函数
    int result = handler.invokeCallback(5);

    // 输出结果
    std::cout << "回调函数的结果：" << result << std::endl;
    
    return 0;
}